this._osdWindows[monitorIndex].show();
}
- show(monitorIndex, icon, label, level, maxLevel) {
- if (monitorIndex !== -1) {
- for (let i = 0; i < this._osdWindows.length; i++) {
- if (i === monitorIndex)
- this._showOsdWindow(i, icon, label, level, maxLevel);
- else
- this._osdWindows[i].cancel();
- }
- } else {
- for (let i = 0; i < this._osdWindows.length; i++)
+ show(icon, label, levels) {
+ for (let i = 0; i < this._osdWindows.length; i++) {
+ if (levels[i]) {
+ const {level, maxLevel = -1} = levels[i];
this._showOsdWindow(i, icon, label, level, maxLevel);
+ } else {
+ this._osdWindows[i].cancel();
+ }
}
}
+ showOne(monitorIndex, icon, label, level, maxLevel) {
+ this.show(icon, label, {
+ [monitorIndex]: {level, maxLevel},
+ });
+ }
+
+ showAll(icon, label, level, maxLevel) {
+ for (let i = 0; i < this._osdWindows.length; i++)
+ this._showOsdWindow(i, icon, label, level, maxLevel);
+ }
+
hideAll() {
for (let i = 0; i < this._osdWindows.length; i++)
this._osdWindows[i].cancel();
icon: serializedIcon,
} = params;
- let monitorIndex = -1;
- if (connector) {
- const monitorManager = global.backend.get_monitor_manager();
- monitorIndex = monitorManager.get_monitor_for_connector(connector);
- }
-
let icon = null;
if (serializedIcon)
icon = Gio.Icon.new_for_string(serializedIcon);
- Main.osdWindowManager.show(monitorIndex, icon, label, level, maxLevel);
+ if (connector) {
+ const monitorManager = global.backend.get_monitor_manager();
+ const monitorIndex =
+ monitorManager.get_monitor_for_connector(connector);
+ Main.osdWindowManager.showOne(monitorIndex, icon, label, level, maxLevel);
+ } else {
+ Main.osdWindowManager.showAll(icon, label, level, maxLevel);
+ }
invocation.return_value(null);
}
const gicon = new Gio.ThemedIcon({name: this.getIcon()});
const level = this.getLevel();
const maxLevel = this.getMaxLevel();
- Main.osdWindowManager.show(-1, gicon, null, level, maxLevel);
+ Main.osdWindowManager.showAll(gicon, null, level, maxLevel);
}
});
global.display.connect('show-pad-osd', this._showPadOsd.bind(this));
global.display.connect('show-osd', (display, monitorIndex, iconName, label) => {
let icon = Gio.Icon.new_for_string(iconName);
- Main.osdWindowManager.show(monitorIndex, icon, label, null);
+ Main.osdWindowManager.showOne(monitorIndex, icon, label);
});
global.display.connect('init-xserver', (display, task) => {